package com.tang.reggie.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tang.reggie.dto.DishDto;
import com.tang.reggie.pojo.Dish;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface DishService extends IService<Dish> {

    /**
     * 新增
     * @param dishDto
     */
    void saveWithFlavors(DishDto dishDto);

    /**
     * 后台列表：查询订单信息且查询出对应分类名称
     * @param page
     * @param pageSize
     * @param name
     * @return
     */
    Page<Dish> findDishWithCategoryName(int page, int pageSize, String name);

    /**
     * 根据id查询出当前的订单详情
     * @param id
     * @return
     */
    DishDto selectById(Long id);

    /**
     * 修改菜品且修改口味表信息
     * @param dishDto
     */
    void updateWithDishFlavors(DishDto dishDto);

    /**
     * 批量删除菜品
     * @param ids
     */
    @Transactional
    void delete(Long[] ids);

    /**
     * 菜品状态修改
     * @param status
     * @param ids
     */
    void updateStatus(int status, Long[] ids);

    /**
     * 根据套餐条件查询当前套餐下的菜品信息
     * @param dishDto
     * @return
     */
    List<DishDto> getByCategory(DishDto dishDto);
}
